Skill

ডাইনামোডিবি (DynamoDB)

Database Tutorials | NCTB BOOK

ডাইনামোডিবি হলো Amazon Web Services (AWS) এর একটি NoSQL ডাটাবেস সেবা, যা ডকুমেন্ট এবং কী-ভ্যালু (key-value) স্টোরেজ উভয়ই সমর্থন করে। এটি সম্পূর্ণভাবে ম্যানেজড, অর্থাৎ ব্যবহারকারীদের ডাটাবেস ইন্সটল করা, কনফিগার করা, স্কেল করা এবং ম্যানেজমেন্ট করার প্রয়োজন হয় না। AWS এর মাধ্যমে DynamoDB স্বয়ংক্রিয়ভাবে ডাটাবেস ম্যানেজ করে এবং উচ্চ স্কেলেবিলিটি ও পারফরম্যান্স প্রদান করে।


DynamoDB: একটি বিস্তারিত বাংলা টিউটোরিয়াল

DynamoDB কি?

Amazon DynamoDB হলো Amazon Web Services (AWS) এর একটি fully managed NoSQL ডাটাবেস সার্ভিস যা দ্রুত এবং স্কেলেবল ডেটা স্টোরেজ সমাধান প্রদান করে। এটি একটি key-value এবং ডকুমেন্ট ডাটাবেস যা স্বয়ংক্রিয়ভাবে ডেটা পুনরায় স্কেল করতে পারে এবং উচ্চতর ট্রাফিক পরিচালনা করতে সক্ষম। DynamoDB রিয়েল-টাইম অ্যাপ্লিকেশন, গেমিং, IoT ডিভাইস, এবং অন্যান্য উচ্চ-প্রয়োজনীয় অ্যাপ্লিকেশনগুলোর জন্য ব্যবহৃত হয়।

DynamoDB এর প্রধান বৈশিষ্ট্য

স্কেলেবিলিটি: DynamoDB উচ্চতর স্কেলেবিলিটি সরবরাহ করে, যা বড় আকারের ট্রাফিক এবং ডেটা পরিচালনার জন্য স্বয়ংক্রিয়ভাবে স্কেল হতে পারে।

লো ল্যাটেন্সি: এটি মাইক্রোসেকেন্ড লেভেলের ল্যাটেন্সি সহ দ্রুত ডেটা অ্যাক্সেসের সুবিধা প্রদান করে, যা রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য আদর্শ।

Managed NoSQL Service: DynamoDB একটি সম্পূর্ণ ম্যানেজড সার্ভিস, যার ফলে ব্যবহারকারীদের হার্ডওয়্যার পরিচালনা বা ইনফ্রাস্ট্রাকচার নিয়ে চিন্তা করতে হয় না।

বহুমাত্রিক ডেটা মডেল: DynamoDB ডেটা key-value পদ্ধতিতে এবং ডকুমেন্ট স্টোরেজ হিসেবে সংরক্ষণ করতে পারে, যা ডেটা অ্যাক্সেস ও পরিচালনা করা সহজ করে তোলে।

অনুমিত ফ্রি স্কেলিং: DynamoDB ব্যবহারকারীদের স্বয়ংক্রিয়ভাবে পড়া এবং লেখার ক্ষমতা (Read/Write Capacity) বৃদ্ধির সুযোগ দেয়।

উন্নত নিরাপত্তা ও ব্যাকআপ: DynamoDB এনক্রিপশন, অ্যাক্সেস নিয়ন্ত্রণ, এবং ব্যাকআপ সার্ভিস সরবরাহ করে, যার মাধ্যমে ডেটা নিরাপদ থাকে।

DynamoDB Streams: এটি একটি ফিচার যা আপনাকে টেবিলে যে কোন পরিবর্তন (ডাটা ইনসার্ট, আপডেট বা ডিলিট) ট্র্যাক করতে দেয় এবং তা অন্য অ্যাপ্লিকেশন বা সার্ভিসে প্রক্রিয়াকরণ করতে সক্ষম।

DynamoDB এর আর্কিটেকচার

DynamoDB একটি distributed database যা ডেটা পার্টিশনিং এবং স্বয়ংক্রিয়ভাবে বিভিন্ন সার্ভারে বিভক্ত করে। এটি ডেটাকে মূলত Partition Keys (প্রাইমারি কী) এবং Sort Keys ব্যবহার করে সংরক্ষণ করে। এর মাধ্যমে সহজে বড় আকারের ডেটাবেসের উপর কুয়েরি করা যায়।

  • Partition Key: একটি সিম্পল প্রাইমারি কী, যা DynamoDB এর ডেটা অ্যাক্সেসের জন্য ব্যবহৃত হয়।
  • Sort Key: এটি Partition Key-এর সাথে মিলিয়ে একাধিক আইটেম সহজেই স্টোর এবং রিট্রিভ করার জন্য ব্যবহৃত হয়।

DynamoDB একই সার্ভারের উপর বা ডিসট্রিবিউটেড সার্ভারের মধ্যে ডেটা রেপ্লিকেট করতে পারে, ফলে ফেইলওভার বা ডেটা লসের সম্ভাবনা কম থাকে।

DynamoDB ইনস্টলেশন ও কনফিগারেশন

DynamoDB একটি cloud-based service, তাই এটি ইনস্টল করার প্রয়োজন নেই। আপনি AWS Management Console, AWS CLI বা SDK ব্যবহার করে DynamoDB এর সাথে কাজ করতে পারেন।

AWS Console এ DynamoDB ব্যবহার

  1. AWS Management Console এ লগ ইন করুন।
  2. DynamoDB সার্ভিস নির্বাচন করুন।
  3. Create Table এ ক্লিক করুন এবং প্রয়োজনীয় তথ্য দিয়ে একটি টেবিল তৈরি করুন।
    • টেবিলের নাম দিন।
    • Partition Key এবং Sort Key নির্ধারণ করুন।
    • রিড এবং রাইট ক্যাপাসিটি সেট করুন।

DynamoDB CLI ব্যবহার

CLI ব্যবহার করে একটি নতুন টেবিল তৈরি করতে পারেন:

aws dynamodb create-table \
    --table-name Employees \
    --attribute-definitions AttributeName=EmployeeID,AttributeType=S \
    --key-schema AttributeName=EmployeeID,KeyType=HASH \
    --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5

উপরের উদাহরণে, Employees নামে একটি টেবিল তৈরি করা হয়েছে, যেখানে EmployeeID হলো প্রাইমারি কী।

DynamoDB তে ডেটা পরিচালনা

১. ডেটা ইনসার্ট করা

DynamoDB তে ডেটা যোগ করতে PutItem মেথড ব্যবহার করা হয়।

aws dynamodb put-item \
    --table-name Employees \
    --item '{"EmployeeID": {"S": "001"}, "Name": {"S": "John Doe"}, "Position": {"S": "Software Engineer"}, "Salary": {"N": "60000"}}'

এখানে Employees টেবিলের মধ্যে নতুন ডকুমেন্ট (আইটেম) যোগ করা হয়েছে।

২. ডেটা অনুসন্ধান করা

Query বা Scan মেথড ব্যবহার করে DynamoDB তে ডেটা রিট্রিভ করা যায়। নিচের উদাহরণে আমরা EmployeeID অনুসারে ডেটা অনুসন্ধান করছি।

aws dynamodb get-item \
    --table-name Employees \
    --key '{"EmployeeID": {"S": "001"}}'

এখানে 001 আইডির কর্মচারীর তথ্য রিট্রিভ করা হয়েছে।

৩. ডেটা আপডেট করা

UpdateItem মেথড ব্যবহার করে DynamoDB তে ডেটা আপডেট করা যায়।

aws dynamodb update-item \
    --table-name Employees \
    --key '{"EmployeeID": {"S": "001"}}' \
    --update-expression "SET Salary = :s" \
    --expression-attribute-values '{":s": {"N": "65000"}}'

উপরের কুয়েরিতে John Doe এর বেতন আপডেট করা হয়েছে।

৪. ডেটা ডিলিট করা

DeleteItem মেথড ব্যবহার করে একটি ডকুমেন্ট (আইটেম) মুছে ফেলা যায়।

aws dynamodb delete-item \
    --table-name Employees \
    --key '{"EmployeeID": {"S": "001"}}'

এখানে 001 আইডির তথ্য মুছে ফেলা হয়েছে।


DynamoDB বনাম অন্যান্য ডাটাবেস

1. DynamoDB বনাম MongoDB

  • স্কেলিং: DynamoDB সম্পূর্ণভাবে ম্যানেজড এবং স্বয়ংক্রিয়ভাবে স্কেল করে, যেখানে MongoDB সাধারণত ম্যানুয়ালি স্কেল করতে হয়।
  • ডেটা মডেল: DynamoDB একটি key-value ডাটাবেস এবং ডকুমেন্ট ডাটাবেস হিসেবে কাজ করে, যেখানে MongoDB পুরোপুরি ডকুমেন্ট-বেসড।
  • পারফরম্যান্স: DynamoDB সাধারণত বড় স্কেল এবং দ্রুততর পারফরম্যান্স প্রদান করে। MongoDB প্রাইমারি কী এবং ইন্ডেক্সিং এর জন্য কার্যকর, কিন্তু বড় ডিস্ট্রিবিউটেড সিস্টেমে সেটআপ জটিল হতে পারে।
  • ম্যানেজমেন্ট: DynamoDB সম্পূর্ণভাবে ম্যানেজড এবং AWS পরিচালনা করে, যেখানে MongoDB এর জন্য স্বতন্ত্র সার্ভার ম্যানেজমেন্ট প্রয়োজন হতে পারে।

2. DynamoDB বনাম DocumentDB

  • API Compatibility: DynamoDB NoSQL API ব্যবহার করে, যেখানে DocumentDB MongoDB এর API সমর্থন করে।
  • পারফরম্যান্স: DynamoDB দ্রুত এবং বেশি স্কেলযোগ্য, যেখানে DocumentDB MongoDB অ্যাপ্লিকেশনের জন্য উপযুক্ত, বিশেষ করে যেখানে MongoDB-এর সাথে সামঞ্জস্যতা দরকার।
  • ব্যবহারক্ষেত্র: DynamoDB মূলত উচ্চ-পারফরম্যান্স এবং স্কেলেবিলিটি প্রয়োজন এমন অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়, যেমন গেমিং বা IoT ডিভাইস। DocumentDB ব্যবহৃত হয় MongoDB অ্যাপ্লিকেশনগুলির জন্য যা AWS ক্লাউডে সরাসরি পরিচালিত হয়।

3. DynamoDB বনাম Cassandra

  • ডেটা মডেল: DynamoDB key-value ডেটাবেস মডেল ব্যবহার করে, যেখানে Cassandra ডিস্ট্রিবিউটেড এবং সুতরাং বড় আকারের ডেটা স্ট্রিম পরিচালনার জন্য ব্যবহৃত হয়।
  • ম্যানেজমেন্ট: DynamoDB সম্পূর্ণ ম্যানেজড এবং AWS পরিচালনা করে, যেখানে Cassandra এর জন্য স্বতন্ত্র সার্ভার এবং ক্লাস্টার ম্যানেজমেন্ট প্রয়োজন।
  • স্কেলিং: DynamoDB এর স্কেলিং সম্পূর্ণ স্বয়ংক্রিয়, যেখানে Cassandra এর জন্য ম্যানুয়াল ক্লাস্টার কনফিগারেশন প্রয়োজন হতে পারে।

উপসংহার

DynamoDB একটি উচ্চতর স্কেলেবল এবং ম্যানেজড NoSQL ডাটাবেস যা key-value এবং ডকুমেন্ট স্টোরেজ সমর্থন করে। এটি স্বয়ংক্রিয় স্কেলিং, দ্রুত ডেটা অ্যাক্সেস, এবং অ্যাডভান্সড সিকিউরিটির জন্য আদর্শ। DocumentDB, MongoDB, এবং Cassandra এর সাথে তুলনা করলে DynamoDB বিশেষত উচ্চ-পারফরম্যান্স এবং ম্যানেজড সার্ভিস হিসেবে প্রাধান্য পায়, বিশেষ করে AWS পরিবেশে ব্যবহৃত অ্যাপ্লিকেশনগুলোর জন্য।

Promotion